/**
 * 将元转换为分
 * @param {string | number} priceInYuan - 输入的价格（元），可以是字符串或数字
 * @returns {object} 包含转换结果和状态
 */
export const convertYuanToCents = (priceInYuan) => {
    // 深拷贝原始输入，避免对象引用问题
    const originData = (typeof priceInYuan === 'object' && priceInYuan !== null)
        ? JSON.parse(JSON.stringify(priceInYuan))
        : priceInYuan;

    let priceInCents = 0;
    let isSuccess = false;

    // 校验输入的值是否是有效的数字（排除 null、undefined、空字符串等）
    if (priceInYuan !== null && priceInYuan !== undefined && priceInYuan !== '' && priceInYuan !== false) {
        // 转换为数字并检查是否为有效的数字
        priceInYuan = Number(priceInYuan);

        // 检查是否为有效的数字且大于或等于0
        if (Number.isFinite(priceInYuan) && priceInYuan >= 0) {
            // 转换为分并四舍五入
            priceInCents = Math.round(priceInYuan * 100);
            isSuccess = true; // 转换成功
            console.log('有效正常的情况下：最终转换为分的金额priceInCents:', priceInCents);
        } else {
            // 错误处理：输入无效的情况下
            console.error("无效的价格输入originData:", originData);
            console.error("无效的价格输入priceInYuan:", priceInYuan);
            priceInCents = 0;  // 设置默认值
            isSuccess = false;
        }
    } else {
        // 错误处理：输入为空或无效
        console.error("originData数据类型首先就不合法，无效的价格输入originData:", originData);
        console.error("priceInYuan数据类型首先就不合法，无效的价格输入priceInYuan:", priceInYuan);
        console.error("priceInYuan数据类型首先就不合法，无效的价格输入typeof priceInYuan:", typeof priceInYuan);
        priceInCents = 0;  // 设置默认值
        isSuccess = false;
    }

    return {
        priceInCents,
        originData,
        isSuccess,  // 标记转换是否成功
    };
}

// 使用示例：
// let price = 0;  // 可以替换为实际的用户输入
// let price = '0.061';
// let price = '0.011';
let price = 1;
// let price = '0.01';  // 可以替换为实际的用户输入
// let price = 0.01;  // 可以替换为实际的用户输入
// let price = null;  // 可以替换为实际的用户输入
// let price = undefined;  // 可以替换为实际的用户输入
// let price = false;  // 可以替换为实际的用户输入

let convertYuanToCentsResult = convertYuanToCents(price);
console.log('原始数据:', convertYuanToCentsResult.originData);
if (convertYuanToCentsResult.isSuccess) {
    console.log('转换成功，最终转换为分的金额:', convertYuanToCentsResult.priceInCents);
} else {
    console.log('转换失败，返回的分数是:', convertYuanToCentsResult.priceInCents);
}


// 使用实例1：
// import { convertYuanToCents } from "@/utils/convertYuanToCents.js";

// let convertYuanToCentsResult = convertYuanToCents(formData.value.bounty);
// console.log('原始数据:', convertYuanToCentsResult.originData);
// if (convertYuanToCentsResult.isSuccess) {
//     console.log('转换成功，最终转换为分的金额:', convertYuanToCentsResult.priceInCents);
// } else {
//     console.log('转换失败，返回的分数是:', convertYuanToCentsResult.priceInCents);
//     uni.showToast({ title: '转换失败，返回的原始数据是:' + convertYuanToCentsResult.originData, icon: "none", });
//     return
// }

// 网络请求传参
// amount: convertYuanToCentsResult.priceInCents,//价格单位元转分